package com.jy.rhin.domain.notification.subscribe;

import com.jy.rhin.domain.notification.subscribe.entity.SubscribeDO;

/**
 * @author WeiQ
 * @date 2022/6/28 11:20
 */
public interface SubscribeDao {
    /**
     * 根据id获取订阅记录
     *
     * @param id
     * @return
     */
    SubscribeDO queryById(Long id);

    /**
     * 根据订阅者+订阅主题查询订阅记录 不包含取消状态
     *
     * @param subscriberCode
     * @param topicExp
     * @return
     */
    SubscribeDO queryBySubscriberAndTopic(String subscriberCode, String topicExp);

    /**
     * 保存订阅记录
     *
     * @param subscribeDO
     */
    void save(SubscribeDO subscribeDO);

    /**
     * 更新订阅记录
     * @param subscribe
     * @return
     */
    Boolean update(SubscribeDO subscribe);
}
